package org.example.servlet_01.request;

import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;

/*
   ServletContext：
    概念：代表一个Web应用程序的上下文，可以存储和获取应用程序的数据
    举例：存储和获取应用的名称，ServletContext中的属性值
        @何时创建：服务器启动时创建，为每一个Web项目创建一个单独的ServletContext对象
        @何时销毁：服务器关闭时，或者项目从服务器中移除时

    获取对象：ServletContext getServletContext()
    存储数据：
        存：void setAttribute(String key,Object value)
        取：Object getAttribute(String key)

    作用范围：
        整个Web应用的范围(多个浏览器访问同一个Web应用的同一个ServletContext)
 */

@WebServlet("/increment")
public class incrementServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        ServletContext context = getServletContext();
        int counter = (int) context.getAttribute("counter");
        counter++;
        context.setAttribute("counter", counter);

        response.setContentType("text/html");
        response.getWriter().write("已打卡，打卡天数为："+counter);
    }
}
